/*
 * 
 */
package org.vectrics.recruiter.company;

import java.util.List;

import org.vectrics.NoProviderException;
import org.vectrics.company.Company;


/**
 * @author mmoore
 */
public abstract class RecruitCompanyService {
	public static String GROUP_RECRUITER = "recruiter";	
	public static String GROUP_HIRING_MANAGER = "hiring.mgr";	
	public static String GROUP_RECRUITER_MANAGER = "recruiter.mgr";	
	public static String GROUP_PRIMARY_CONTACT = "primary.contact";	
	
	
	private static RecruitCompanyService instance = null;
	public static String BEAN_ID = "recruit.company.provider";
	public RecruitCompanyService() {
		super();
		instance = this;
	}
	
	static public RecruitCompanyService getInstance() {
		if (instance == null) {
			throw new NoProviderException("A RecruitCompanyProvider not instantiated");
		}
		return(instance);
	}

	abstract public RecruitCompanyInfo findRecruitCompanyInfo(Company company);
	abstract public void updateRecruitCompanyInfo(RecruitCompanyInfo recruitCompanyInfo);
	//abstract public void addJobCandidate(Company company, Person person);
	
	/**
	 * Find the Hiring Managers for a company.
	 */
	abstract public List findHiringManagers(Company company);
	
	/**
	 * Find the recruiters for a company.
	 * @param company
	 * @return
	 */
	abstract public List findRecruiters(Company company);	
}
